package com.shujia

object Demo7Func1 {
  /**
   * 函数（方法）可以定义在什么位置？
   * 类中、Object中、方法中
   */
  def main(args: Array[String]): Unit = {
    /**
     * def 这是一个函数
     * func1 函数名
     * str1: String, str2: String 函数的参数
     * Unit: 函数的返回值类型，这里相当于void
     * {} : 方法体
     */
    def func1(str1: String, str2: String): Unit = {
      println("func1")
    }

    func1("123", "456")

    println(func2("321")) // 421
    println(func3("321")) // 421
    println(func4("321")) // 421
    println(func5("321")) // 421
    println(func6) // func6不需要参数 调用时括号可以省略

  }

  def func2(str: String): Int = {
    return str.toInt + 100
  }
  // 不应该在此进行调用
  //  println(func2("123"))
  /**
   * 函数的省略：
   * 1、return关键字可以省略，默认最后一行作为返回值
   * 2、如果只有一行代码，花括号可以省略
   * 3、返回值类型可以省略
   * 4、如果函数没有参数，括号也可以省略
   */

  def func3(str: String): Int = {
    str.toInt + 100
  }

  def func4(str: String): Int = str.toInt + 100

  def func5(str: String) = str.toInt + 100

  def func6 = 100 + 100 // 这是一个函数！这是一个函数！这是一个函数！

}
